package com.empresa.androidchkapp.syncservices;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.TimeZone;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;

import android.content.ContentValues;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;

import com.empresa.androidchkapp.DataBaseHelper;
import com.empresa.androidchkapp.helpers.SyncHelper;
import com.empresa.androidchkapp.pojos.ChecklistRoteiroRealizado;
import com.google.gson.Gson;



//Eh o ChecklistRoteiroRealizado...Checklists de fato
public class ServicoEnviaChecklistRoteiro{

	private final Context contexto;

	public ServicoEnviaChecklistRoteiro(Context context) {
		this.contexto = context;
	}
	
	public void sincronizar(String chkRoteirosRealizados) {
		consumirServico(chkRoteirosRealizados);
	}


	protected void consumirServico(String params) {

		HttpClient httpClient = new DefaultHttpClient();
		HttpContext localContext = new BasicHttpContext();
		HttpPost httpPost = new HttpPost(
				"http://checklist.elasticbeanstalk.com/api/ChecklistRoteiroRealizado");
		String text = null;

		StringEntity se = null;
		try {
			se = new StringEntity(params);
		} catch (UnsupportedEncodingException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		se.setContentEncoding("UTF-8");
		se.setContentType("application/json");
		httpPost.setEntity(se);

		try {
			HttpResponse response = httpClient.execute(httpPost, localContext);
			
			BufferedReader rd = new BufferedReader(new InputStreamReader(
					response.getEntity().getContent()));

			StringBuffer result = new StringBuffer();
			String line = "";
			while ((line = rd.readLine()) != null) {
				result.append(line);
			}

			text = result.toString();
			tratarRetorno(text);
		} catch (Exception e) {
			String err = e.getLocalizedMessage();
		}
	}

	private Void tratarRetorno(String retorno) {
//		Toast.makeText(this.contexto.getApplicationContext(),
//				"Checklists enviado com sucesso", Toast.LENGTH_SHORT).show();
		Gson gsonRetorno = new Gson();
		try {
			ChecklistRoteiroRealizado[] lista = gsonRetorno.fromJson(retorno, ChecklistRoteiroRealizado[].class);
			
			for (ChecklistRoteiroRealizado item : lista) {
				AtualizarDataEnvioChecklistRoteiroRealizadoes(item.getId());
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	protected void onPostExecute(String results) {

		if (results != null) {
			
			
		}

	}
	
	public int AtualizarDataEnvioChecklistRoteiroRealizadoes(Integer checklistRoteiroRealizadoId) {
		DataBaseHelper baseHelper = new DataBaseHelper(contexto);
		SQLiteDatabase db = baseHelper.getWritableDatabase();

		Calendar c = Calendar.getInstance();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
		df.setTimeZone(TimeZone.getTimeZone("UTC"));
		String formattedDate = df.format(c.getTime());

		ContentValues contentValues = new ContentValues();
	    contentValues.put("DataEnvio", formattedDate);

		try {
			// Faz o update
			Integer rowsAffected = db.update("ChecklistRoteiroRealizadoes",
					contentValues, "_id = " + checklistRoteiroRealizadoId, null);

			return rowsAffected;

		} catch (SQLException e) {
			Log.e("ChkItensActivity", "Erro ao tentar atualizar DataTermino ChecklistRoteiroRealizadoes");
			return 0;
		} finally {
			db.close();
		}
	}

}
